/**
 * 图案API封装
 */

// 导入云对象
const sandart = uniCloud.importObject('sandart')

export default {
	/**
	 * 获取图案列表
	 * @param {object} params - 查询参数 (可选)
	 * @param {string} [params.category] - 图案分类
	 * @param {string} [params.keyword] - 搜索关键词
	 * @param {string[]} [params.tags] - 标签数组
	 * @param {number} [params.page=1] - 页码
	 * @param {number} [params.limit=20] - 每页数量
	 * @param {string} [params.sortBy='create_time'] - 排序字段
	 * @param {string} [params.sortOrder='desc'] - 排序方向 (asc/desc)
	 * @param {boolean} [params.onlyFree=false] - 只显示免费图案
	 * @returns {Promise<object>} 返回图案列表
	 */
	async getPatternList(params = {}) {
		try {
			const result = await sandart.getPatternList(params)
			return result
		} catch (error) {
			console.error('[PATTERN API] getPatternList error:', error)
			throw error
		}
	},
	
	/**
	 * 获取图案详情
	 * @param {string} patternId - 图案ID (必填)
	 * @returns {Promise<object>} 返回图案详情
	 */
	async getPatternDetail(patternId) {
		try {
			const result = await sandart.getPatternDetail(patternId)
			return result
		} catch (error) {
			console.error('[PATTERN API] getPatternDetail error:', error)
			throw error
		}
	},

	/**
	 * 通过文件名获取图案详情
	 * @param {string|string[]} fileName - 图案文件名 (必填) 支持单个文件名或文件名数组
	 * @returns {Promise<object>} 返回图案详情
	 * @example
	 * // 单个文件名
	 * const result = await patternApi.getPatternByFileName('pattern1.thr')
	 * 
	 * // 文件名数组
	 * const result = await patternApi.getPatternByFileName(['pattern1.thr', 'pattern2.thr'])
	 */
	async getPatternByFileName(fileName) {
		try {
			const result = await sandart.getPatternByFileName(fileName)
			return result
		} catch (error) {
			console.error('[PATTERN API] getPatternByFileName error:', error)
			throw error
		}
	}
}
